using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using UnityEngine;
using UnityEngine.EventSystems;

namespace Kayac
{
	public class FullScreenInputHandler : BaseRaycaster, IPointerDownHandler, IEventSystemHandler, IPointerUpHandler
	{
		public interface IPointer
		{
			Vector2 ScreenPosition { get; }

			Vector2 NormalizedScreenPosition { get; }

			Vector2 DownScreenPosition { get; }

			Vector2 DownNormalizedScreenPosition { get; }

			Vector2 DownScreenPositionDelta { get; }

			Vector2 DownNormalizedScreenPositionDelta { get; }

			bool Down { get; }

			int Id { get; }

			DateTime DownTime { get; }

			void ResetDownPointer();
		}

		private class Pointer : IPointer
		{
			public Vector2 ScreenPosition { get; private set; }

			public Vector2 NormalizedScreenPosition => default(Vector2);

			public Vector2 DownScreenPosition { get; private set; }

			public Vector2 DownNormalizedScreenPosition => default(Vector2);

			public Vector2 DownScreenPositionDelta => default(Vector2);

			public Vector2 DownNormalizedScreenPositionDelta => default(Vector2);

			public bool Down { get; private set; }

			public DateTime DownTime { get; private set; }

			public int Id { get; private set; }

			public int UpdateFrame { get; private set; }

			public Pointer(int id)
			{
			}

			public void Update(Vector2 screenPosition, int frame)
			{
			}

			public void OnDown(Vector2 screenPosition, int frame)
			{
			}

			public void OnUp()
			{
			}

			public void ResetDownPointer()
			{
			}
		}

		[SerializeField]
		private Camera attachedCamera;

		[SerializeField]
		private float distanceFromCamera;

		private Dictionary<int, Pointer> pointers;

		private Pointer mainPointer;

		public IPointer MainPointer => null;

		public override Camera eventCamera => null;
		public IEnumerable<IPointer> GetPointers()
		{
			return null;
		}

		public IPointer GetPointer(int id)
		{
			return null;
		}

		public override void Raycast(PointerEventData eventData, List<RaycastResult> resultAppendList)
		{
		}

		public void OnPointerDown(PointerEventData eventData)
		{
		}

		public void OnPointerUp(PointerEventData eventData)
		{
		}

		public void ManualLateUpdate()
		{
		}

		public static Vector2 NormalizePointer(Vector2 screenPosition)
		{
			return default(Vector2);
		}
	}
}
